/**
 * 处理API响应数据，统一格式
 * @param {Object} response - API响应对象
 * @param {String} dataType - 期望的数据类型: 'array' 或 'object'
 * @returns {Array|Object} 处理后的数据
 */
export function normalizeApiResponse(response, dataType = 'array') {
  // 如果response为空
  if (!response) {
    console.warn('API响应为空')
    return dataType === 'array' ? [] : {}
  }
  
  // 检查数据结构
  const data = response.data || response
  
  // 如果是标准API响应格式，带有status和data字段
  if (data && data.status === 'success' && data.data !== undefined) {
    return data.data
  } 
  
  // 如果数据已经是正确类型
  if (
    (dataType === 'array' && Array.isArray(data)) || 
    (dataType === 'object' && !Array.isArray(data) && typeof data === 'object')
  ) {
    return data
  }
  
  // 类型不匹配的情况
  console.warn(`API响应格式不符合预期 (${dataType})`, data)
  return dataType === 'array' ? [] : {}
}

/**
 * 格式化日期时间
 * @param {String|Date} datetime - 日期时间
 * @param {String} format - 格式化模板
 * @returns {String} 格式化后的日期字符串
 */
export function formatDatetime(datetime, format = 'YYYY-MM-DD HH:mm:ss') {
  if (!datetime) return ''
  
  const date = new Date(datetime)
  if (isNaN(date.getTime())) return datetime
  
  const year = date.getFullYear()
  const month = String(date.getMonth() + 1).padStart(2, '0')
  const day = String(date.getDate()).padStart(2, '0')
  const hours = String(date.getHours()).padStart(2, '0')
  const minutes = String(date.getMinutes()).padStart(2, '0')
  const seconds = String(date.getSeconds()).padStart(2, '0')
  
  return format
    .replace('YYYY', year)
    .replace('MM', month)
    .replace('DD', day)
    .replace('HH', hours)
    .replace('mm', minutes)
    .replace('ss', seconds)
} 